The use of touch-sensitive surfaces as input devices for computers and other electronic computing devices has increased significantly in recent years. Exemplary touch-sensitive surfaces include touch pads and touch screen displays. Such surfaces are widely used to manipulate user interface objects on a display.
Some electronic devices (e.g., a mobile phone, a portable game console, etc.) provide a user interface that includes an on-screen keyboard (also called a soft keyboard) that allows a user to enter text into the user interface by touching virtual keys displayed on a touch-sensitive display device (sometimes called a touch screen display). Typically, the on-screen keyboard is a system keyboard that is provided by the operating system of the electronic device. In addition to providing the system keyboard, the operating system of the device handles the display behavior of the system keyboard. A application developer may want to create custom user interfaces because the standard interfaces don't have visual appearances or functionalities that are desired by the application developer. For example, on a small screen, an on-screen keyboard may obscure valuable portions of a displayed application. In another example, a game developer may want to have a custom game interface that includes game related functionality instead of a standard user interface that does not include game related functionality.
Existing methods for creating custom user interfaces are time consuming and inefficient because they require an application developer to specify all aspects of a custom user interface, including the display behavior of the custom user interface.